package com.hbnu.expression;

import java.util.Random;
import java.util.Scanner;

/**
 * 需求：程序自动生成一个1-100之间的数字，使用程序实现猜出这个数字是多少?
 * 当猜错的时候根据不同情况给出相应的提示
 * 如果猜的数字比真实数字大，提示你猜的数据大了
 * 如果猜的数字比真实数字小，提示你猜的数据小了
 * 如果猜的数字与真实数字相等，提示恭喜你猜中了
 *
 * @author kittychen
 * @since 2025-09-09 10:29
 */
public class Expression04 {

    public static void main(String[] args) {
        // 1、程序生成随机数（1-100）
        Random random = new Random();
        int number = random.nextInt(1000000) + 1;

        // 2、创建键盘输入对象
        Scanner scanner = new Scanner(System.in);

        // 3、定义一个变量，用于存放用户输入的数字
        int guessNumber = 0;

        // 4、开始猜数字
        while (true) {
            System.out.println("请输入一个1-1000000之间的数字：");
            try {
                guessNumber = Integer.parseInt(scanner.nextLine());
            } catch (NumberFormatException e) {
                System.out.println("小伙子，请输入数字......");
                continue;
            }

            if (guessNumber == 0) {
                System.exit(0);
            }

            if (guessNumber < 1 || guessNumber > 1000000) {
                System.out.println("小伙子，请输入1-1000000之间的数字......");
                continue;
            }

            if (guessNumber > number) {
                System.out.println("你猜的数字大了！");
            } else if (guessNumber < number) {
                System.out.println("你猜的数字小了！");
            } else {
                System.out.println("恭喜你猜对了！");
                break;
            }
        }
    }
}
